<?php
class usuarios extends Model
{
	private $mTableName = 'US_Usuarios';
	public function __construct()
	{
		parent::Model();
		$this->load->database();
	}

	function CreateUsuario($mnombre,$midresponsable,$midrol,$mclave,$musername,$midepar)
	{
		
		$data = array(
		'NombreUsuario'			=> $mnombre,
		'IdResponsable'			=> $midresponsable,
		'IdRol'					=> $midrol,
		'IdDepartamento'	    => $midepar,
		'ClaveUsuario'			=> $mclave,
		'UsernameUsuario'		=> $musername
		);

		$this->db->insert($this->mTableName, $data);
		return $this->LoadUsuarioById($this->db->insert_id());
	}

	function UpdateUsuario($mnombre,$midresponsable,$midrol,$mclave,$musername,$midepar,$id)
	{
		
		$data = array(
		'NombreUsuario'			=> $mnombre,
		'IdResponsable'			=> $midresponsable,
		'IdRol'					=> $midrol,
		'IdDepartamento'	    => $midepar,
		'ClaveUsuario'			=> $mclave,
		'UsernameUsuario'		=> $musername
		);
		
		$this->db->where('IdUsuario',$id);
		$this->db->update($this->mTableName, $data);
		return true;
	}

	function LoadUsuarioById($midusuario)
	{
		$qresult = $this->db->get_where($this->mTableName, array('IdUsuario' => $midusuario));

		if ($qresult->num_rows() == 0)
		return false;

		return new usuario($qresult->row());
	}
	
    function LoadUsuarioByIdDep($dep)
	{
		$qresult = $this->db->get_where($this->mTableName, array('IdDepartamento' => $dep,'Estatus !=' => 1));

		if ($qresult->num_rows() == 0)
		return false;		

		return $this->GetUsuariosArrayFromQueryResult($qresult);

	}
	
    function LoadUsuarioByIdDepD($dep)
	{
		$qresult = $this->db->get_where($this->mTableName, array('IdDepartamento !=' => $dep,'Estatus !=' => 1));

		if ($qresult->num_rows() == 0)
		return false;		

		return $this->GetUsuariosArrayFromQueryResult($qresult);

	}
	
    function LoadUsuarioByIdDepAcivos($depart)
	{
		$qresult = $this->db->get_where($this->mTableName, array('IdDepartamento =' => $depart,'Estatus =' => 0));

		if ($qresult->num_rows() == 0)
		return false;		

		return $this->GetUsuariosArrayFromQueryResult($qresult);

	}
	
	function LoadUsuarioByuse($usuario)
	{
		
		$qresult = $this->db->get_where($this->mTableName, array('UsernameUsuario' => $usuario));

		if ($qresult->num_rows() == 0)
		return false;

		return true;
	}
	
    function LoadUsuarioCantidad($cant,$id)
	{
		$qresult = $this->db->get_where($this->mTableName, array($cant => $id));
		return $qresult->num_rows();
	}

	function LoadUsuarios($start = false,$offset=false,$sortname=false,$sortorder = false,$midrol=false)
	{
	

		if($midrol != false && $midrol!= '')
		$this->db->where('IdRol',$midrol);

		if($offset != false)
		$this->db->limit($offset, $start);

		if($sortname != false && $sortorder != false) {
			$this->db->order_by($sortname, $sortorder);
		}

		$result = $this->db->get_where($this->mTableName);

		return $this->GetUsuariosArrayFromQueryResult($result);
	}
	
		function LoadUsuariosDepar($id)
	{

		$result = $this->db->get_where($this->mTableName, array('IdRol'=>$id));

		return $this->GetUsuariosArrayFromQueryResult($result);
	}

	function GetCount() {
		return count($this->LoadUsuarios());
	}

	function GetUsuariosArrayFromQueryResult($result)
	{
		if ($result->num_rows() == 0)
		return false;

		$usuarios_arr = array();

		foreach ($result->result() as $record) {
			$usuarios_arr[] = new usuario($record);
		}

		return $usuarios_arr;
	}

	function Login($username, $password)
	{
		$this->db->where('UsernameUsuario',$username);
		$this->db->where('ClaveUsuario',$password);
		$this->db->where('Estatus',0);

		$result = $this->db->get($this->mTableName);

		if ($result->num_rows() == 0)
		return false;

		foreach ($result->result() as $record)
		return $this->LoadUsuarioById($record->IdUsuario);
	}


	function LoadUsuariosByIdResponsable($midresponsable)
	{
		$this->db->where('IdResponsable',$midresponsable);

		$result = $this->db->get($this->mTableName);

		if ($result->num_rows() == 0)
		return false;

		return $this->GetUsuariosArrayFromQueryResult($result);
	}

	function Activar($id) {
		
		$nuevo = $this->LoadUsuarioById($id);
		$nuevo2 = $nuevo->getEstado();
		  if ($nuevo2 == 0) {
		  	$data = array('Estatus' => 1);
		    $this->db->where('IdUsuario',$id);
		    $this->db->update($this->mTableName, $data);  	
		  }
		  
		  elseif ($nuevo2 == 1)
		  {
		  	$data = array('Estatus' => 0);
		    $this->db->where('IdUsuario',$id);
		    $this->db->update($this->mTableName, $data);  	
		  }
		  
	}
	
	function Delete($id){
		
		$this->db->where('IdUsuario',$id);
		$this->db->delete($this->mTableName);
	}

	function LoadUsuarioByUserName($musername) {
		$this->db->where('UsernameUsuario', $musername);

		$result = $this->db->get($this->mTableName);

		if ($result->num_rows() == 0)
		return false;

		return $this->GetUsuariosArrayFromQueryResult($result);
	}
          
          function loadUsuariosActivos()
	{
                    $result = $this->db->get_where($this->mTableName, array('Estatus' => "0"));
		return $this->GetUsuariosArrayFromQueryResult($result);
	}
          
          
          
          
          
}

class usuario
{
	private $midusuario=0;
	private $mnombreusuario="";
	private $midresponsable="";
	private $midrol=0;
	private $mclaveusuario="";
	private $musernameusuario="";
	private $departamento = 0;
	private $estatus = 0;
	private $color = "";
	private $_ext = 0;

	function __construct($obj)
	{
		$this->setIdUsuario($obj->IdUsuario);
		$this->setNombreUsuario($obj->NombreUsuario);
		$this->setIdResponsable($obj->IdResponsable);
		$this->setIdRol($obj->IdRol);
		$this->setClaveUsuario($obj->ClaveUsuario);
		$this->setUsernameUsuario($obj->UsernameUsuario);
		$this->setIdDepartamento($obj->IdDepartamento);
		$this->setEstado($obj->Estatus);
		$this->setColor($obj->color);
		$this->setEtx($obj->EXT);
		
	}
	
    function setEtx($value)
	{
		$this->_ext = $value;
	}

	function getEtx()
	{
		return $this->_ext;
	}

	function setIdUsuario($id_usuario)
	{
		$this->midusuario=$id_usuario;
	}

	function getIdUsuario()
	{
		return $this->midusuario;
	}

	function setNombreUsuario($nombreusuario)
	{
		$this->mnombreusuario=$nombreusuario;
	}

	function getNombreUsuario()
	{
		return $this->mnombreusuario;
	}

	function setIdResponsable($idresponsable)
	{
		$this->midresponsable=$idresponsable;
	}

	function getIdresponsable()
	{
		return $this->midresponsable;
	}

	function setIdRol($idrol)
	{
		$this->midrol=$idrol;
	}

	function getIdRol()
	{
		return $this->midrol;
	}

	function setClaveUsuario($clave_usuario)
	{
		$this->mclaveusuario=$clave_usuario;
	}

	function getClaveUsuario()
	{
		return $this->mclaveusuario;
	}

	function setUsernameUsuario($username_usuario)
	{
		$this->musernameusuario=$username_usuario;
	}

	function getUsernameUsuario()
	{
		return $this->musernameusuario;
	}
	
    function setIdDepartamento($username_usuario)
	{
		$this->departamento=$username_usuario;
	}

	function getIdDepartamento()
	{
		return $this->departamento;
	}
	
	function setEstado($username_usuario)
	{
		$this->estatus=$username_usuario;
	}

	function getEstado()
	{
		return $this->estatus;
	}
	
	function setColor($username_usuario)
	{
		$this->color=$username_usuario;
	}

	function getColor()
	{
		return $this->color;
	}
}
?>